Explicit Substitutions with de Bruijn's Levels
Identifieur interne : 00C374 ( Main/Exploration ); précédent : 00C373; suivant : 00C375Explicit Substitutions with de Bruijn's Levels
Auteurs : Pierre Lescanne [France] ; J. Rouyer-DegliSource :
Abstract
Calculus of explicit substitutions is a λ-calculus in which substitution is not external but is fully integrated at the same level as β~reduction. This internalisation of the substitution calculus is achieved by rewrite rules which allow a full and easy mechanism for describing β~reduction. The original goal of explicit substitutions is to provide the implementor of {\sc Automath} (and later of functional programming languages) with a finer granularity in the description of the process of substitutions, as substitutions play the central role in the implementation of those systems and languages. This way, controls that postpone costly operations may be adopted and operations that will turn out to be unnecessary will never be performed {\it (lazy evaluation)\/}. Except for a sketched attempt by Abadai, Cardelli, Curien and Levy, ({\it λσ-calculus with names\/}), all the proposed calculi use {\it De Bruijn indices\/}. That notation has two drawbacks. First, terms are hard to read due to the use of numbers instead of names and due to the fact that the ``same'' variable is designated by different numbers according to the context. Second the association between variables and their values, the so-called environment, keeps changing whenever one leaves or enters an abstraction. To our knowledge ``levels'' were only mentioned twice in the literature, first by de Bruijn and later by Crégut in his PhD, but never in the framework of explicit substitutions. Both authors suggest a canonical indexing of the variables ; Crégut calls it ``reversed De Bruijn indexing''. To make formulas as readable as in the classical λ-calculus, we give each variable a name made from its index and that name is the same everywhere in a pure term, i.e., a term without {\it closure\/} (see below) unlike classical De Bruijn index. Two important features of λ\chi are the absence of variables of type {\it substitution\/} and the absence of composition of substitutions. Of course, the λ-calculus describes variables, but they are seen as constants by the rewrite system λ\chi and they will be called {\it names\/} in what follows. The only variables of λ\chi (those which play an actual role in the rewrite system) are of type {\sl Term\/} and of type {\sl Nat\/}.
Affiliations:
- France
- Grand Est, Lorraine (région)
- Nancy
- Centre national de la recherche scientifique, Institut national de recherche en informatique et en automatique, Laboratoire lorrain de recherche en informatique et ses applications, Université de Lorraine
Links toward previous steps (curation, corpus...)
- to stream Crin, to step Corpus: 001943
- to stream Crin, to step Curation: 001943
- to stream Crin, to step Checkpoint: 002B86
- to stream Main, to step Merge: 00CC31
- to stream Main, to step Curation: 00C374
Le document en format XML
<record><TEI><teiHeader><fileDesc><titleStmt><title xml:lang="en" wicri:score="39">Explicit Substitutions with de Bruijn's Levels</title>
</titleStmt>
<publicationStmt><idno type="RBID">CRIN:lescanne95b</idno>
<date when="1995" year="1995">1995</date>
<idno type="wicri:Area/Crin/Corpus">001943</idno>
<idno type="wicri:Area/Crin/Curation">001943</idno>
<idno type="wicri:explorRef" wicri:stream="Crin" wicri:step="Curation">001943</idno>
<idno type="wicri:Area/Crin/Checkpoint">002B86</idno>
<idno type="wicri:explorRef" wicri:stream="Crin" wicri:step="Checkpoint">002B86</idno>
<idno type="wicri:Area/Main/Merge">00CC31</idno>
<idno type="wicri:Area/Main/Curation">00C374</idno>
<idno type="wicri:Area/Main/Exploration">00C374</idno>
</publicationStmt>
<sourceDesc><biblStruct><analytic><title xml:lang="en">Explicit Substitutions with de Bruijn's Levels</title>
<author><name sortKey="Lescanne, P" sort="Lescanne, P" uniqKey="Lescanne P" first="P." last="Lescanne">Pierre Lescanne</name>
<affiliation><country>France</country>
<placeName><settlement type="city">Nancy</settlement>
<region type="region" nuts="2">Grand Est</region>
<region type="region" nuts="2">Lorraine (région)</region>
</placeName>
<orgName type="laboratoire" n="5">Laboratoire lorrain de recherche en informatique et ses applications</orgName>
<orgName type="university">Université de Lorraine</orgName>
<orgName type="institution">Centre national de la recherche scientifique</orgName>
<orgName type="institution">Institut national de recherche en informatique et en automatique</orgName>
</affiliation>
</author>
<author><name sortKey="Rouyer Degli, J" sort="Rouyer Degli, J" uniqKey="Rouyer Degli J" first="J." last="Rouyer-Degli">J. Rouyer-Degli</name>
</author>
</analytic>
</biblStruct>
</sourceDesc>
</fileDesc>
<profileDesc><textClass></textClass>
</profileDesc>
</teiHeader>
<front><div type="abstract" xml:lang="en" wicri:score="5360">Calculus of explicit substitutions is a λ-calculus in which substitution is not external but is fully integrated at the same level as β~reduction. This internalisation of the substitution calculus is achieved by rewrite rules which allow a full and easy mechanism for describing β~reduction. The original goal of explicit substitutions is to provide the implementor of {\sc Automath} (and later of functional programming languages) with a finer granularity in the description of the process of substitutions, as substitutions play the central role in the implementation of those systems and languages. This way, controls that postpone costly operations may be adopted and operations that will turn out to be unnecessary will never be performed {\it (lazy evaluation)\/}. Except for a sketched attempt by Abadai, Cardelli, Curien and Levy, ({\it λσ-calculus with names\/}), all the proposed calculi use {\it De Bruijn indices\/}. That notation has two drawbacks. First, terms are hard to read due to the use of numbers instead of names and due to the fact that the ``same'' variable is designated by different numbers according to the context. Second the association between variables and their values, the so-called environment, keeps changing whenever one leaves or enters an abstraction. To our knowledge ``levels'' were only mentioned twice in the literature, first by de Bruijn and later by Crégut in his PhD, but never in the framework of explicit substitutions. Both authors suggest a canonical indexing of the variables ; Crégut calls it ``reversed De Bruijn indexing''. To make formulas as readable as in the classical λ-calculus, we give each variable a name made from its index and that name is the same everywhere in a pure term, i.e., a term without {\it closure\/} (see below) unlike classical De Bruijn index. Two important features of λ\chi are the absence of variables of type {\it substitution\/} and the absence of composition of substitutions. Of course, the λ-calculus describes variables, but they are seen as constants by the rewrite system λ\chi and they will be called {\it names\/} in what follows. The only variables of λ\chi (those which play an actual role in the rewrite system) are of type {\sl Term\/} and of type {\sl Nat\/}.</div>
</front>
</TEI>
<affiliations><list><country><li>France</li>
</country>
<region><li>Grand Est</li>
<li>Lorraine (région)</li>
</region>
<settlement><li>Nancy</li>
</settlement>
<orgName><li>Centre national de la recherche scientifique</li>
<li>Institut national de recherche en informatique et en automatique</li>
<li>Laboratoire lorrain de recherche en informatique et ses applications</li>
<li>Université de Lorraine</li>
</orgName>
</list>
<tree><noCountry><name sortKey="Rouyer Degli, J" sort="Rouyer Degli, J" uniqKey="Rouyer Degli J" first="J." last="Rouyer-Degli">J. Rouyer-Degli</name>
</noCountry>
<country name="France"><region name="Grand Est"><name sortKey="Lescanne, P" sort="Lescanne, P" uniqKey="Lescanne P" first="P." last="Lescanne">Pierre Lescanne</name>
</region>
</country>
</tree>
</affiliations>
</record>
Pour manipuler ce document sous Unix (Dilib)
EXPLOR_STEP=$WICRI_ROOT/Wicri/Lorraine/explor/InforLorV4/Data/Main/Exploration
HfdSelect -h $EXPLOR_STEP/biblio.hfd -nk 00C374 | SxmlIndent | more
Ou
HfdSelect -h $EXPLOR_AREA/Data/Main/Exploration/biblio.hfd -nk 00C374 | SxmlIndent | more
Pour mettre un lien sur cette page dans le réseau Wicri
{{Explor lien |wiki= Wicri/Lorraine |area= InforLorV4 |flux= Main |étape= Exploration |type= RBID |clé= CRIN:lescanne95b |texte= Explicit Substitutions with de Bruijn's Levels }}
This area was generated with Dilib version V0.6.33. |